Artificial anchor for a document

ABSTRACT

Methods, systems, and apparatus, including computer program products, for linking to an intra-document portion of a target document includes receiving an address for a target document identified by a search engine in response to a query, the target document including query-relevant text that identifies an intra-document portion of the target document, the intra-document portion including the query relevant text. An artificial anchor is generated, the artificial anchor corresponding to the intra-document portion. The artificial anchor is appended the address.

RELATED APPLICATION

This application claims the benefit of U.S. application Ser. No.10/750,183, filed on Dec. 31, 2003 and entitled “Systems and Methods forDirect Navigation to Specific Portion of Target Document,” the entiretyof which is hereby incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

Systems and methods for direct navigation to and/or highlighting aspecific portion of a target document such as query-relevant portion ofthe document are disclosed.

2. Description of Related Art

When a user searches for information on the Internet by submitting aquery to a search engine, the search engine returns a results page thatoften provides several hyperlinks to web pages that may be relevant tothe user's query. Under each hyperlink, the results page typically alsoprovides query-relevant information or text, often referred to as“snippets,” extracted from the webpage to which the correspondinghyperlink refers. When the user clicks on a desired hyperlink on thesearch results page, the client browser typically navigates to the topof the target or destination webpage (or other document such as a Word,Excel or Portable Document Format (PDF) document, for example) to whichthe hyperlink refers. However, the target webpage may be long and/or thesearch query terms may be buried deep within the webpage. To locate thedesired search terms, the user may perform a search for the desired textfrom within the web browser and/or manually (visually) search for therelevant information by scrolling through the webpage.

As an example, to find pizza places in or near zip code 94043, the usermay search for “pizza” at zip code 94043 using Google's “Searching byLocation” search engine currently located athttp:Nlabs.google.com/location (i.e.,http://labs.google.com/location?q-pizza&geo˜near=94043&Search=Google+Search)as shown in FIG. 1. An exemplary results page returned by the searchengine is shown in FIG. 2 in which the first hyperlink 20 points tohttp://www.waiter.corn/roundtable, which contains a list of 35 pizzaplaces in or near zip code 94043. In addition to the various hyperlinks,the search engine also provides a snippet 26 extracted from the webpageto which each hyperlink refers. As shown, certain text of each snippet26 is in bold font so as to highlight certain text that may be useful asdetermined by the search engine. For the first hyperlink 20, the searchengine highlights the text “Pizza 570 N. Shoreline Blvd. MOUNTAIN VIEW,CA.” of the snippet 26 in bold.

If the user clicks on the first-listed hyperlink 20, the client browserloads and displays the destination webpage 22 to which the hyperlink 20refers at the top of the webpage 22, as shown in FIG. 3. However, thetarget document or webpage is typically not hosted or authored by thesame entity as that of the search engine or other source or origindocument such that the desired information is typically not propagatedfrom the source document to the target document. Thus, for example,because the browser typically displays the webpage 22 at the top of thewebpage 22, the restaurant that is in or closest to zip code 94043 mayor may not be initially displayed within the browser. In the currentexample, the restaurant that is in or closest to zip code 94043, namely,the Round Table Pizza at 570 N. Shoreline Blvd. in Mountain View, Calif.is the tenth out of 35 listings on the destination webpage 22.

In order for the user to determine which of the listings is the mostquery relevant listing, the user can determine as the user scrollsthrough the 35 listings on the destination webpage 22 which of thelistings is the one that is most relevant to the user's query, i.e., inor closest to zip code 94043. In the current example, the user mustscroll down a number of screens before the query-relevant listing 24 iseven displayed within the browser, as shown in FIG. 4. Alternatively,the user may take note of the content of the snippet 26 beforenavigating or clicking away from the results page (FIG. 2) and thensearch for (either visually by scrolling or by performing a text searchfrom within the browser) the content of the snippet.

As is evident, each result on the search results page generated by thesearch engine only points to a webpage and not to anything moregranular. In other words, the snippet generated by the search engine isonly displayed to the user on the search results page and is notpropagated or otherwise utilized to directly navigate to the desiredlocation on the destination webpage.

SUMMARY OF THE INVENTION

Disclosed herein are apparatus, methods and systems for linking to anintra-document portion of a target document. In an implementation, amethod includes receiving an address for a target document identified bya search engine in response to a query, the target document includingquery-relevant text that identifies an intra document portion of thetarget document, the intra-document portion including the query relevanttext; generating an artificial anchor, the artificial anchorcorresponding to the intra document portion; and appending theartificial anchor to the address. The artificial anchor can be undefinedin the target document. Other embodiments of this aspect includecorresponding systems, apparatus, and computer program products.

In another implementation, a method includes receiving a plurality ofsearch results at a client device in response to a search query, each ofthe search results including a uniform resource locator identifying acorresponding target document and an artificial anchor corresponding toan intra-document portion of the corresponding target document, theintra-document portion including query-relevant text that identifies theintra document portion of the corresponding target document; in responseto a selection of a search result from the search results at the clientdevice, transmitting from the client device a request for thecorresponding target document identified by the uniform resource locatorincluded in the selected search result and receiving at the clientdevice the corresponding target document in response to the request; andprocessing the artificial anchor included in the selected search resultat the client device to cause the client device to display thecorresponding intra-document portion of the corresponding targetdocument. The artificial anchor can be undefined in the target document.Other embodiments of this aspect include corresponding systems,apparatus, and computer program products.

In still another implementation, a method includes receiving a searchresult page including a plurality of search results, each search resultincluding a search result link pointing to a corresponding targetdocument and a snippet extracted from an intra-document portion of thecorresponding target document; for each search result, generating anintra-document link based on the snippet included in the search resultby appending an artificial anchor to the search result link, theintra-document link pointing to the intra-document portion of thecorresponding target document; and in response to a selection of one ofthe intra-document links, receiving the corresponding target documentand navigating directly to the intra-document portion of thecorresponding target document. Other embodiments of this aspect includecorresponding systems, apparatus, and computer program products.

The details of one or more embodiments of the subject matter describedin this specification are set forth in the accompanying drawings and thedescription below. Other features, aspects, and advantages of thesubject matter will become apparent from the description, the drawings,and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be readily understood by the followingdetailed description in conjunction with the accompanying drawings,wherein like reference numerals designate like structural elements.

FIG. 1 is an illustrative client browser window displaying a searchengine interface for entering a query.

FIG. 2 is an illustrative client browser window displaying searchresults.

FIG. 3 is an illustrative client browser window displaying a webpage towhich a search result hyperlink refers at the top of the webpage.

FIG. 4 is an illustrative client browser window displaying the webpageof FIG. 3 at a location that displays query-relevant information withinthe browser.

FIG. 5 is an illustrative client browser window displaying the webpageof FIG. 3 in which the display is automatically scrolled to thequery-relevant information of the webpage and the query-relevantinformation highlighted.

FIG. 6 is a flowchart of an illustrative client-side process forautomatically scrolling to and highlighting the query-relevantinformation of the webpage.

FIG. 7 is a flowchart of an illustrative server-side process forgenerating and inserting an artificial named anchor in the URL of eachsearch result.

FIG. 8 is a flowchart of a modified portion of the process shown in FIG.7 in which the search engine also determines if the target webpagealready contains a named anchor at or near the snippet.

FIG. 9 is a block diagram of an illustrative network system.

FIG. 10 is a block diagram of an illustrative client device.

DESCRIPTION OF THE SPECIFIC EMBODIMENTS

Systems and methods for direct navigation to and/or highlighting aspecific portion of a target document such as query-relevant portion ofthe document are disclosed. The following description is presented toenable any person skilled in the art to make and use the invention.Descriptions of specific embodiments and applications are provided onlyas examples and various modifications will be readily apparent to thoseskilled in the art. The general principles defined herein may be appliedto other embodiments and applications without departing from the spiritand scope of the invention. Thus, the present invention is to beaccorded the widest scope encompassing numerous alternatives,modifications and equivalents consistent with the principles andfeatures disclosed herein. For purpose of clarity, details relating totechnical material that is known in the technical fields related to theinvention have not been described in detail so as not to unnecessarilyobscure the present invention.

As discussed above, FIG. 1 is an illustrative client browser windowdisplaying the interface for a Google search engine that searches bylocation. FIG. 2 is an illustrative client browser window displaying thesearch results in response to a query for “pizza” and “94043.” in whichthe first hyperlink 20 points to http://www.waiter.com/roundtable/ thatcontains a list of pizza restaurants. In addition to the varioushyperlinks, the search engine also provides a snippet 26 extracted fromthe webpage to which each hyperlink refers. As shown, certain text ofeach snippet 26 is in bold font so as to highlight certain text that maybe useful as determined by the search engine. As an example, for thefirst hyperlink 20, the search engine highlights the query relevant text“Pizza 570 N. Shoreline Blvd. MOUNTAIN VIEW, CA.” of the snippet 26 inbold. Conventionally, the user may click on the first hyperlink 20 tocause the browser to navigate to the top of the webpage to which thehyperlink 20 refers, as shown in FIG. 3. The user may then scroll downto find and determine which of the 35 listed pizza restaurants is theone closest to or located in zip code 94043 within the webpage 22 asshown in FIG. 4. Alternatively, the user may take note of the content ofthe snippet in the results page (FIG. 2) before navigating from theresults page to the destination webpage and then search for (either byscrolling or by performing a text search from within the browser) thecontent of the snippet.

Conventional named anchors are added by webpage authors to allow usersto navigate directly to a specific part or location within the webpage.For example, the webpage author may create a named anchor with <ANAME=location> Location </A> at the specific part of the webpage towhich the reader can navigate directly from another part of the samewebpage or from a different webpage. The NAME attribute names a section,e.g., text or image, so that other links can reference it via aclickable HREF link containing a pound sign “#” followed by the anchorname. In particular, the same or different webpage may include aclickable HREF link: <A href=”[URL]#location> Jump to Location </A>,where [URL] is the URL of the target webpage. The HREF attributespecifies the URL address to which the browser is to navigate when theuser clicks on the HREF link, i.e., “Jump to Location.” Note that usingthe HREF link containing an anchor name requires that the author of thewebpage to have created the named anchor. If a named anchor does notexist for the specific part of the webpage, then the HREF link cannot beused to allow the reader to navigate directly to that specific part ofthe webpage. If an HREF link refers to a non-existent anchor, thebrowser simply navigates to the top of the target webpage.

With systems and methods described herein, mechanisms are provided togenerate or simulate links with artificial named anchors and to allowthe browser to recognize the artificial named anchor and navigatedirectly to the desired specific part of the target webpage even whenthe author of the webpage has not created a named anchor at the specificpart of the webpage. In particular, the systems and methods describedherein simulate the general functionality of the named anchor and theHREF link to provide links containing artificial named anchors thatallow navigation directly to a specific part of the target webpage evenwhen a named anchor does not exist at the specific part of the targetwebpage. Such links can be utilized by any webpage to provide a link toa specific part of another target webpage. In particular, such linkscontaining artificial named anchors can be particularly useful forsearch result pages returned by search engines.

The systems and methods described herein may be utilized to navigate anydocument that may be provided from any suitable source as the Internet,an intranet, or local memory, for example. The term URL as used hereingenerally refers to a locator or address for any document, notnecessarily only those available on the Internet. Suitable target ordestination documents are typically those displayable by a clientbrowser, typically a client web browser, such as an Internet Explorer,Netscape, Opera, or Mozilla browser.

Referring again to the example described above with reference to FIGS.1-4, the search results page returned by the search engine may provideor otherwise simulate links to a specific part of a target webpage suchas the part of the target webpage that includes at least a portion ofthe snippet 26 or to a portion that the server or search enginedetermined to be similar or otherwise relevant. Thus when the userclicks on a portion of the snippet 26, for example, the browser maynavigate directly to the part of the target webpage 22 that includes theportion of the snippet 26, as shown in FIG. 5.

To further draw the user's attention to the query-relevant listing 24 inthe target webpage 22, at least some of the snippet, e.g., “570 N.Shoreline,” may be highlighted. For example, a specific portion may behighlighted, i.e., draw attention to or otherwise emphasize, bymodifying the format of the specific portion such as by underlining,bolding, italicizing, foreground and/or background color changing, fontand/or size changing, border drawing, text animating (e.g., “marchingred ants”, etc.), aligning, kerning, style editing/adding/removing. Theformatting change may help draw the user's attention to the specificportion by rendering the specific portion inconsistent or distinct fromother parts of the document, site, etc. Additionally or alternatively,information in the target document may be modified, for example, byadding, removing or editing relevant (or irrelevant) information, suchas by scrolling to, altering or adding a link, adding an image, deletingsurrounding aspect, adding new text, adding a popup or hover window,adding and/or executing JavaScript instructions and/or other computinginstructions in other languages or methods. The information change mayadd links to relevant information known to the source page, to provide amethod of returning to the source page, to add known links to the targetpage, etc.

In one embodiment of the present invention, navigation by the browserdirectly to the specified query-relevant intra-document portion isimplemented on the client side while an instruction to the clientbrowser to navigate directly to the intra-document portion is providedby a source, e.g., a server or search engine, providing the clickablelink. In particular, in one embodiment of the invention the clientbrowser has installed therein an artificial named anchor module that maybe implemented via a toolbar such as the Google toolbar, a dynamic linklibrary (DLL) or any other type of plug-in, a browser helper object(BHO), or any other suitable mechanism to implement the desiredfunctionality in the browser. Note that the functionality need not beimplemented using a module and that the browser, shell or Word documentviewer, etc. can implement the functionality natively without an add-on.The artificial named anchor module enables the browser to recognize whenan URL includes an artificial named anchor. In one embodiment, theartificial named anchor module may be implemented to recognize asartificial any named anchor that begins with a preassigned, artificialnamed anchor prefix. For example, any set of suitable preassigned textcharacters may be utilized as the preassigned anchor prefix. In oneembodiment of the invention, the preassigned anchor prefix is relativelyobscure so as to reduce the likelihood of conflicts with actual anchorsin the destination webpage. Any other suitable mechanism for recognizingan artificial named anchor may be utilized. As an example, thepreassigned text characters may appear anywhere within the name of theartificial anchor, e.g., as a suffix or anywhere within the artificialanchor.

In the example shown in FIG. 5, _g_” is used as the pre-assignedartificial named anchor prefix. As shown in the address bar 28 in FIG.5, the URL the client browser received ishttp://www.waiter.com/roundtable#_g_(—)570+N.+Shoreline. As is evident,the URL references an artificial named anchor “_g_(—)570 N. Shoreline”although the target webpage may or may not include such an anchor. Uponrecognizing that the named anchor is artificial, the browser parses orstrips the preassigned artificial prefix, e.g., _g_, from the artificialanchor and searches for the remaining artificial anchor text (e.g., “570N. Shoreline”) in the target webpage. If the remaining artificial anchortext is not located, the browser may display the webpage at the top.Alternatively, if the remaining anchor text is located, the browser maynavigate directly to the portion of the webpage containing the remaininganchor text and may also highlight the text. In the above example, theremaining anchor text is the same as the intra-document portion of thetarget webpage. It is noted the artificial anchor text may optionally beencoded such that the client browser may unencode the artificial anchortext to extract the artificial anchor text before navigating directly tothe intra-document portion of the target webpage. In otherimplementations, different or no encoding mechanisms can be employed.

As is evident, the client-side process may be implemented via theartificial named anchor module installed in the browser. FIG. 6 is aflowchart of an illustrative client-side process 200 for recognizing andprocessing artificial named anchors and navigating directly to andhighlighting the query-relevant portion of the webpage. The process 200begins with the user entering a query via a search engine interface atblock 202. At block 204, the search engine returns the search resultstypically with one or more snippets for each hyperlink. At block 206,the user selects from the search results and clicks on a selectedhyperlink to navigate to a target or destination webpage to which thehyperlink refers. It is noted that for each given search result, thesearch results page may provide any number of hyperlinks, optionallywith reference to an artificial anchor. It is noted that certain searchresults may not provide a hyperlink that references an artificial namedanchor as may be the case where the target is a PDF document, forexample.

Currently, the browser only displays a PDF document at the top of thedocument although the browser may be similarly modified so as to be ableto search and navigate within the PDF document. A similar mechanism mayalso be implemented for Word, Excel, and/or various other documents withsegmentable and/or searchable pieces.

At block 208, the browser determines if the selected hyperlinkreferences a named anchor. If not, then the navigation proceeds asnormal at block 210. Alternatively, if the selected hyperlink referencesa named anchor, then the browser determines if the named anchor is anartificial anchor at block 212. As noted above, the browser maydetermine that an anchor is artificial if the anchor begins with apreassigned artificial anchor prefix e.g., -g-. If the browserdetermines that the anchor is not artificial, then the navigationproceeds as normal at block 210. Alternatively, if the browserdetermines that the anchor is artificial, then the browser may parse andoptionally unencode the artificial anchor at block 214. In otherimplementations, different or no encoding mechanisms can be employed.For example, the browser may strip the artificial anchor of thepreassigned anchor prefix, e.g., -g-. The browser then loads thedestination webpage and directly navigates to and may also highlight,such as by modifying the formatting of and/or information in the portionof the destination webpage specified by the artificial anchor at block216. In effect, the browser typically would find, highlight and scrollto the first instance of the portion of the destination webpagespecified by the artificial anchor.

It is noted that in one embodiment of the present invention if theclient web browser does not have artificial named anchor moduleinstalled, then the browser will default to ignoring the artificialnamed anchor as such an anchor would not exist in the actual targetwebpage. However, if the client web browser (or the client device ingeneral) does have the appropriate artificial named anchor moduleinstalled, the artificial named anchor module will process artificialanchors according to the exemplary client-side process 200 describedabove. Thus, the artificial anchor serves as an instruction to theartificial named anchor module or to the client browser in general.

The client-side process 200 may allow any source (referral webpage ordocument) to utilize the artificial named anchor mechanism such that anyclient device with the artificial named anchor module installed wouldperform the artificial anchor recognition and processing process 200 tonavigate directly to the portion of the target webpage referenced by theartificial anchor. Alternatively, the artificial named anchor module mayadditionally examine the source (referral webpage) of a hyperlink withan artificial named anchor and only process those whose source isauthorized. For example, the client process may determine whether asource is authorized by sniffing an appropriate cookie or by use ofheaders, for example.

Artificial anchors are generally most useful for searching for textwithin the target webpage. However, other items to be displayed in thebrowser and/or otherwise defined by the target webpage may also besearched. Examples include image name, tag identification (ID), tagname, location in the document object model (DOM), HTML byte offset, ageneral offset or location definition within the search result document,etc. In addition to using artificial anchors to find, highlight andscroll to the referenced text or other portion of the target webpage,the client-side process may alternatively or additionally perform otherfunctions. For example, the client-side process may be implemented tofind and highlight occurrences of specific words within the targetwebpage, e.g., by using a different preassigned artificial anchor prefixsuch as _gh_.” Thus, multiple occurrences of the specific word(s) orphrase(s) being searched would be highlighted. As another example, theclient-side process may be implemented to find and scroll to a specifiedimage based on, for example, the image name, within the target webpage,e.g., by using a different preassigned artificial anchor prefix such as“_gi_.” In addition, the artificial anchor module of the client devicemay alternatively perform a fuzzy (best effort) search rather than anabsolute or strict search when searching for the specific portionreferred to by the artificial anchor.

While the artificial anchors are recognized and processed by theclient-side process 200, in one embodiment the artificial anchors aregenerated by a server-side process although a client-side process may besimilarly implemented. FIG. 7 is a flowchart of an illustrative searchengine server-side process 220 for generating and appending anartificial anchor to the URL of the search result. In particular, atblock 222, the search engine receives a query from the user. At block224, the search engine performs the search and generates the searchresult. Each search result may include an URL or hyperlink referencing atarget or destination webpage and one or more snippets extracted fromthe target webpage to which the corresponding hyperlink refers. Anysuitable search methodology may be employed in block 224.

For each search result 226, the search engine may determine whether thesearch result hyperlink already includes or references an anchor atblock 228. Search engines typically do not return hyperlinks withanchors as anchors are generally not indexed. If such is the case, block228 may be eliminated. If the URL already includes an anchor, then thesearch engine may continue onto the next search result at 226.Alternatively, the search engine may strip the anchor from the URL atblock 230.

If the search result URL already includes an anchor and the searchengine performs block 230 or if the search result URL does not includean anchor, then the search engine generates a modified search result URLby appending an artificial named anchor to the search result URL atblock 232. For example, the search engine may use a preassignedartificial anchor prefix such as “_g_” or any other mechanism to signalto the client device that the named anchor is artificially generated.

As noted above, each search result may include a search result hyperlinkreferencing the target webpage and one or more snippets extracted fromthe target webpage to which the hyperlink refers. When there aremultiple snippets associated with a given search result, the snippetsare typically separated an ellipsis, such as a three-dot ellipsis. Thesearch engine may transform each snippet into at least one activesnippet in which each active snippet is a hyperlink with an artificialanchor that references the portion of the target webpage containing thecorresponding snippet or portion of the snippet. For example, eachsnippet may optionally be parsed into multiple snippet segments in whichthe search engine transforms each snippet segment into a separatehyperlink each with a corresponding artificial anchor. In oneembodiment, the snippet may be segmented in accordance with punctuationmarks that the snippet contains. In an alternative embodiment, theactive snippet may link to an artificial anchor that simply points tothe search term or phrase, for example.

After the search engine generates the hyperlink with the artificialanchor, the process 220 then continues with the next search result at226. After all search results have been processed, the search engineserver transmits the search results page to the client device at block234.

In one alternative embodiment, the search engine may also determine ifthe target webpage already contains a named anchor at or near thesnippet, either before or instead of performing block 232 as shown inthe flowchart of FIG. 8 illustrating a modified portion of the process220. As shown, after determining that the URL does not already includean anchor at block 228, the search engine may determine if the targetwebpage already contains a named anchor at or near the snippet at block240. Block 240 may be performed before or instead of block 232. If thetarget webpage already contains a named anchor at or near the snippet asdetermined in block 240, then the search engine utilizes that anchor byappending the anchor to the URL of the search result at block 242 andthe process continues with the next search result.

Process 220 may be implemented on the server side although it may bealternatively or additionally implemented on the client side such as viathe client-side artificial anchor module or other suitable mechanism.When the process of generating artificial anchors is implemented on theclient side and/or when the artificial anchor generation process is notimplemented by the search engine utilized by the user, the client-sideprocess may examine each snippet in each search result and generate ahyperlink referencing an artificial named anchor.

As is evident, the combination of generating artificial anchors andrecognizing and processing artificial anchors improves the user's webbrowsing experience by allowing the user to navigate directly to aspecific intra-document portion of the target document or webpagecorresponding to the relevant snippet. The artificial anchors can beused with any suitable search results such as the Google's standardsearch, Geo-Search, Froogle search, etc.

The use of artificial anchors is merely one embodiment. For example, theserver may provide hints or instructions to the client browser byinserting hidden tags in the results page or attributes on the A tags.The installed browser module on the client side skims the DOM of eachresults page and extracts the relevant information from these hints orinstructions. Thus, when the user navigates to a target webpage ordocument, the installed browser module applies the desired result ofthese instructions to achieve similar functions. Client web browsersthat do not expect such instructions, i.e., without the appropriatemodule installed, for example, would simply ignore the instructions. Insuch an embodiment, the user would not see an artificial anchor appendedto the URL in the address bar of the client browser.

In one embodiment, to minimize the impact of transmitting extrainformation from the server that will only be ignored by the clientdevice or more specifically the client browser if the client device isnot installed with the artificial anchor module, the server may sniffthe relevant cookie on the client device and determine if the artificialanchor module is installed. To facilitate such a process, installationof the artificial anchor module may cause the relevant cookie to becreated and modified. If the artificial anchor module is not installed,then the server, e.g., search engine, is informed that the artificialanchor module is not installed when the query is submitted and thesearch engine may proceed with the search without generating referencesto artificial links, for example.

In an alternative embodiment, the mechanism for automatically scrollingto a specific portion of a target page may be implemented on the serverside. With server side implementation, a client side artificial anchormodule may not be needed. For example, in response to the user clickingon a particular snippet line, the server returns a cached page directlyscrolled to a portion of the target document corresponding to theselected snipped. In one embodiment, the search query itself and theparticular snippet line number are provided to the server when the userclicking on a particular snippet line. The server then regenerates thesnippets, i.e., rerun the snippet generation algorithm, and return thecached page using, for example, JavaScript or other mechanism toautomatically scroll to the portion of the cached page that correspondsto the selected snippet line. As another example, each snippet for agiven target page is a link to a portion corresponding to the snippet ina cached page. In particular, the link to the cached page may includethe query as well as additional information, e.g., a hint such as in theform of an anchor, to appropriately position or scroll the cached pagein the browser using a named anchor. The cached page in turn may includenamed anchors each prefixing a portion of the cached page correspondingto the snippet. In general, with server side implementation, a servermay proxy the target page or an intermediary, e.g., a web proxy or IBMYsWeb Intermediary (WBI), may implement the server side functionality.

In one embodiment, the system may be configured such that the browsermay simultaneously display all the snippet lines, such as with the useof multiple frames each with at least one of the snippet lines visiblewithin the browser. Alternatively, the server may be configured so as toreturn a cached page within one or more frames within a frame set witheach frame scrolled to display one of the snippet lines. For example,where a snippet generation engine returns three snippet lines, thebrowser may contain three frames within a frame set, with each framedisplaying the same target or cached page and each scrolled to adifferent corresponding one of the snippet lines so as to simultaneouslydisplay all of the snippet lines generated by the snippet engine.

FIG. 9 illustrates an exemplary networked system 100 in which systemsand methods described herein may be implemented. The networked system100 may include client devices 102 in communication with servers 104 and106 via a network 108. The network 108 may be a local area network(LAN), a wide area network (WAN), a telephone network, such as thePublic Switched Telephone Network (PSTN), an intranet, the Internet, orany suitable combination of networks. For purposes of clarity, twoclient devices 102 and three servers 104 and 106 are illustrated asconnected to the network 140. However, any suitable number of clientdevices 102 and servers 104, 106 may be connected via the network 140.In addition, a given client device may perform the functions of a serverand a server may perform the functions of a client device. The clientdevices 102 may include devices, such mainframes, minicomputers,personal computers, laptops, personal digital assistants, or the like,capable of connecting to the network 108. The client devices 102 maytransmit data over the network 108 and/or receive data from the network108 via a wired (e.g., copper, optical, etc.) and/or wirelessconnection.

FIG. 10 illustrates an exemplary client device 102 suitable forimplementation in the networked system 100 of FIG. 9. The client device102 may include a bus 120, a processor 122, a main memory 124, a readonly memory (ROM) 126, a storage device 128, an input device 130, anoutput device 132, and a communication interface 134. The bus 120 mayinclude one or more conventional buses that permit communication amongthe components of the client device 102. The processor 122 may includeany type of conventional processor or microprocessor that interprets andexecutes instructions. The main memory 124 may include a random accessmemory (RAM) or another type of dynamic storage device that storesinformation and instructions for execution by the processor 122. The ROM126 may include a conventional ROM device or another type of staticstorage device that stores static information and instructions for useby the processor 122. The storage device 128 may include a magneticand/or optical recording medium, for example, and its correspondingdrive.

The input device 130 may include one or more conventional mechanismsthat permit a user to input information to the client device 102 such asa keyboard, a mouse, a pen, voice recognition and/or biometricmechanisms, etc. The output device 132 may include one or moreconventional mechanisms that output information to the user, including adisplay, a printer, a speaker, etc. The communication interface 134 mayinclude any transceiver-like mechanism that enables the client device102 to communicate with other devices and/or systems. For example, thecommunication interface 134 may include mechanisms for communicatingwith another device or system via a network, such as network 108.

The client devices 102 perform certain searching-related operations suchas those described above. The client devices 102 may perform theseoperations in response to the processor 122 executing softwareinstructions contained in a computer-readable medium, such as memory124. A computer-readable medium may be defined as one or more memorydevices and/or carrier waves. The software instructions may be read intomemory 124 from another computer-readable medium such as the datastorage device 128 or from another device via the communicationinterface 134. The software instructions contained in memory 124 causesprocessor 122 to perform search-related activities described below.Alternatively, hardwired circuitry may be used in place of or incombination with software instructions to implement search-relatedprocesses described herein. Thus, the present invention is not limitedto any specific combination of hardware circuitry and software.

The servers 104 and 106 may include one or more types of computersystems, such as a mainframe, minicomputer, or personal computer capableof connecting to the network 108 to enable servers 104, 106 tocommunicate with the client devices 102. In alternative implementations,the servers 104, 106 may include mechanisms for directly connecting toone or more client devices 102. The servers 104, 106 may transmit dataover the network 108 or receive data from the network 108 via a wired orwireless connection.

The servers may be configured in a manner similar to that describedabove in reference to FIG. 10 for client device 102. In oneimplementation, the server 106 may include a search engine 110 usable bythe client devices 102. The servers 104 may store documents (e.g., webpages) accessible by the client devices 102.

While the exemplary embodiments of the present invention are describedand illustrated herein, it will be appreciated that they are merelyillustrative and that modifications can be made to these embodimentswithout departing from the spirit and scope of the invention. Thus, thescope of the invention is intended to be defined only in terms of thefollowing claims as may be amended, with each claim being expresslyincorporated into this Description of Specific Embodiments as anembodiment of the invention.

1. A computer-implemented method, comprising: receiving an address for atarget document identified by a search engine in response to a query,the target document including query-relevant text that identifies anintra-document portion of the target document, the intra-documentportion including the query-relevant text; generating an artificialanchor, the artificial anchor corresponding to the intra-documentportion; and appending the artificial anchor to the address.
 2. Themethod of claim 1, wherein the artificial anchor comprises aninstruction for an artificial anchor module in a document browser on aclient device to navigate directly to the intra-document portion of thetarget document when the target document is displayed on the clientdevice.
 3. The method of claim 1, wherein appending the artificialanchor comprises appending the artificial anchor to a uniform resourcelocator that specifies the location of the target document.
 4. Themethod of claim 1, wherein the artificial anchor includes a preassignedartificial anchor designator designating the artificial anchor to anartificial anchor module in a client device.
 5. The method of claim 4,wherein the artificial anchor includes the preassigned artificial anchordesignator as either a prefix or a suffix and wherein the preassignedartificial anchor designator includes a preassigned set of textcharacters.
 6. The method of claim 1, wherein the artificial anchorincludes the query-relevant text.
 7. A computer-implemented method,comprising: receiving a plurality of search results at a client devicein response to a search query, each of the search results including auniform resource locator identifying a corresponding target document andan artificial anchor corresponding to an intra-document portion of thecorresponding target document, the intra-document portion includingquery-relevant text that identifies the intra-document portion of thecorresponding target document; in response to a selection of a searchresult from the search results at the client device, transmitting fromthe client device a request for the corresponding target documentidentified by the uniform resource locator included in the selectedsearch result and receiving at the client device the correspondingtarget document in response to the request; and processing theartificial anchor included in the selected search result at the clientdevice to cause the client device to display the correspondingintra-document portion of the corresponding target document.
 8. Themethod of claim 7, wherein each of the artificial anchors comprise apreassigned artificial anchor designator designating the artificialanchor to an artificial anchor module in the client device.
 9. Themethod of claim 8, wherein each of the artificial anchors includes thepreassigned artificial anchor designator as either a prefix or a suffixand wherein the preassigned artificial anchor designator includes apreassigned set of text characters.
 10. The method of claim 8, whereinprocessing the artificial anchor included in the selected search resultat the client device to cause the client device to display thecorresponding intra-document portion of the corresponding targetdocument comprises highlighting the query-relevant text that identifiesthe intra-document portion of the corresponding target document.
 11. Themethod of claim 7, wherein each of the search results includes thequery-relevant text, and wherein the query-relevant text for each searchresult is extracted from the corresponding intra-document portion of thecorresponding target document.
 12. A computer-implemented method,comprising: receiving a search result page including a plurality ofsearch results, each search result including a search result linkpointing to a corresponding target document and a snippet extracted froman intra-document portion of the corresponding target document; for eachsearch result, generating an intra-document link based on the snippetincluded in the search result by appending an artificial anchor to thesearch result link, the intra-document link pointing to theintra-document portion of the corresponding target document; and inresponse to a selection of one of the intra-document links, receivingthe corresponding target document and navigating directly to theintra-document portion of the corresponding target document.
 13. Themethod of claim 12, wherein each artificial anchor includes apreassigned artificial anchor designator designating the anchor asartificial to an artificial anchor module in a client device.
 14. Themethod of claim 13, wherein each artificial anchor includes a portion ofthe snippet extracted from the intra-document portion of thecorresponding target document.
 15. A client device, comprising: a clientbrowser configured to display a search result that includes anartificial anchor appended to a uniform resource locator for a targetdocument, the artificial anchor corresponding to an intra-documentportion of the target document, and wherein in response to the searchresult being selected, the client browser transmits a request for thetarget document and receives the target document in response to therequest; and an artificial anchor module configured to process theartificial anchor and to cause the client browser to display theintra-document portion of the target document corresponding to theartificial anchor.
 16. The client device of claim 15, wherein theartificial anchor comprises a preassigned artificial anchor designatordesignating the artificial anchor to the artificial anchor module in theclient device.
 17. The client device of claim 16, wherein the searchresults includes at least one snippet extracted from the intra-documentportion of the target document.
 18. A computer program product embodiedon a computer-readable medium, the computer program product includinginstructions, which when executed by a computer system, are operable tocause the computer system to perform acts comprising: receiving anaddress for a target document, the target document includingquery-relevant text that identifies an intra-document portion of thetarget document; generating an artificial anchor corresponding to theintra-document portion of the target document; and appending theartificial anchor to the address.
 19. The computer program product of18, wherein the artificial anchor includes the preassigned artificialanchor designator as either a prefix or a suffix and wherein thepreassigned artificial anchor designator includes a preassigned set oftext characters.
 20. The computer program product of claim 18, whereinthe artificial anchor includes the query-relevant text.
 21. A computerprogram product embodied on a computer-readable medium, the computerprogram product including instructions, which when executed by a clientdevice, are operable to cause the client device to perform actscomprising: receiving a plurality of search results at a client devicein response to a search query, each of the search results including auniform resource locator identifying a corresponding target document andan artificial anchor corresponding to an intra-document portion of thecorresponding target document, the intra-document portion includingquery-relevant text that identifies the intra-document portion of thecorresponding target document; in response to a selection of a searchresult from the search results at the client device, transmitting fromthe client device a request for the corresponding target documentidentified by the uniform resource locator included in the selectedsearch result and receiving at the client device the correspondingtarget document in response to the request; and processing theartificial anchor included in the selected search result at the clientdevice to cause the client device to display the correspondingintra-document portion of the corresponding target document.